+Wed Oct 10 12:48:38 2001 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkmain.c (gtk_init_check): Call setlocale (LC_ALL, "").
+ (#60606)
+
+ * gtk/gtkmain.c (gtk_disable_setlocale): Add function
+ to disable calling setlocale (LC_ALL, "").
+
+ * gtk/gtkmain.c (gtk_set_locale): Indicate in the
+ docs that this function is not typically useful.
+
+ * gdk/x11/{gdkim-x11.c,gdkmain-x11.c,gdkprivate-x11.h}:
+ Automatically initialize GDK for the current locale
+ on gdk_init(). Don't reset locale to C when
+ XSupportsLocale() fails.
+
+ * gdk/linux-fb/gdkim-fb.c (gdk_set_locale): Remove
+ useless checks for UTF-8 locale breakage that mattered
+ only for X.
+
+ * examples/calendar/calendar.c
+ tests/{testgtk.c,testtext.c,testcalendar.c}: Remove calls to
+ gtk_set_locale().
+
+ * gtk/gtkiconfactory.c gtk/gtkitemfactory.c:
+ gdk_pixbuf_new_from_stream => gdk_pixbuf_new_from_inline.
+
Wed Oct 10 21:13:46 2001 Kristian Rietveld <kristian@planet.nl>
* gtk/gtktreemodel.[ch]: added gtk_tree_model_get_iter_from_string().
+Wed Oct 10 12:48:38 2001 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkmain.c (gtk_init_check): Call setlocale (LC_ALL, "").
+ (#60606)
+
+ * gtk/gtkmain.c (gtk_disable_setlocale): Add function
+ to disable calling setlocale (LC_ALL, "").
+
+ * gtk/gtkmain.c (gtk_set_locale): Indicate in the
+ docs that this function is not typically useful.
+
+ * gdk/x11/{gdkim-x11.c,gdkmain-x11.c,gdkprivate-x11.h}:
+ Automatically initialize GDK for the current locale
+ on gdk_init(). Don't reset locale to C when
+ XSupportsLocale() fails.
+
+ * gdk/linux-fb/gdkim-fb.c (gdk_set_locale): Remove
+ useless checks for UTF-8 locale breakage that mattered
+ only for X.
+
+ * examples/calendar/calendar.c
+ tests/{testgtk.c,testtext.c,testcalendar.c}: Remove calls to
+ gtk_set_locale().
+
+ * gtk/gtkiconfactory.c gtk/gtkitemfactory.c:
+ gdk_pixbuf_new_from_stream => gdk_pixbuf_new_from_inline.
+
Wed Oct 10 21:13:46 2001 Kristian Rietveld <kristian@planet.nl>
* gtk/gtktreemodel.[ch]: added gtk_tree_model_get_iter_from_string().
+Wed Oct 10 12:48:38 2001 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkmain.c (gtk_init_check): Call setlocale (LC_ALL, "").
+ (#60606)
+
+ * gtk/gtkmain.c (gtk_disable_setlocale): Add function
+ to disable calling setlocale (LC_ALL, "").
+
+ * gtk/gtkmain.c (gtk_set_locale): Indicate in the
+ docs that this function is not typically useful.
+
+ * gdk/x11/{gdkim-x11.c,gdkmain-x11.c,gdkprivate-x11.h}:
+ Automatically initialize GDK for the current locale
+ on gdk_init(). Don't reset locale to C when
+ XSupportsLocale() fails.
+
+ * gdk/linux-fb/gdkim-fb.c (gdk_set_locale): Remove
+ useless checks for UTF-8 locale breakage that mattered
+ only for X.
+
+ * examples/calendar/calendar.c
+ tests/{testgtk.c,testtext.c,testcalendar.c}: Remove calls to
+ gtk_set_locale().
+
+ * gtk/gtkiconfactory.c gtk/gtkitemfactory.c:
+ gdk_pixbuf_new_from_stream => gdk_pixbuf_new_from_inline.
+
Wed Oct 10 21:13:46 2001 Kristian Rietveld <kristian@planet.nl>
* gtk/gtktreemodel.[ch]: added gtk_tree_model_get_iter_from_string().
+Wed Oct 10 12:48:38 2001 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkmain.c (gtk_init_check): Call setlocale (LC_ALL, "").
+ (#60606)
+
+ * gtk/gtkmain.c (gtk_disable_setlocale): Add function
+ to disable calling setlocale (LC_ALL, "").
+
+ * gtk/gtkmain.c (gtk_set_locale): Indicate in the
+ docs that this function is not typically useful.
+
+ * gdk/x11/{gdkim-x11.c,gdkmain-x11.c,gdkprivate-x11.h}:
+ Automatically initialize GDK for the current locale
+ on gdk_init(). Don't reset locale to C when
+ XSupportsLocale() fails.
+
+ * gdk/linux-fb/gdkim-fb.c (gdk_set_locale): Remove
+ useless checks for UTF-8 locale breakage that mattered
+ only for X.
+
+ * examples/calendar/calendar.c
+ tests/{testgtk.c,testtext.c,testcalendar.c}: Remove calls to
+ gtk_set_locale().
+
+ * gtk/gtkiconfactory.c gtk/gtkitemfactory.c:
+ gdk_pixbuf_new_from_stream => gdk_pixbuf_new_from_inline.
+
Wed Oct 10 21:13:46 2001 Kristian Rietveld <kristian@planet.nl>
* gtk/gtktreemodel.[ch]: added gtk_tree_model_get_iter_from_string().
+Wed Oct 10 12:48:38 2001 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkmain.c (gtk_init_check): Call setlocale (LC_ALL, "").
+ (#60606)
+
+ * gtk/gtkmain.c (gtk_disable_setlocale): Add function
+ to disable calling setlocale (LC_ALL, "").
+
+ * gtk/gtkmain.c (gtk_set_locale): Indicate in the
+ docs that this function is not typically useful.
+
+ * gdk/x11/{gdkim-x11.c,gdkmain-x11.c,gdkprivate-x11.h}:
+ Automatically initialize GDK for the current locale
+ on gdk_init(). Don't reset locale to C when
+ XSupportsLocale() fails.
+
+ * gdk/linux-fb/gdkim-fb.c (gdk_set_locale): Remove
+ useless checks for UTF-8 locale breakage that mattered
+ only for X.
+
+ * examples/calendar/calendar.c
+ tests/{testgtk.c,testtext.c,testcalendar.c}: Remove calls to
+ gtk_set_locale().
+
+ * gtk/gtkiconfactory.c gtk/gtkitemfactory.c:
+ gdk_pixbuf_new_from_stream => gdk_pixbuf_new_from_inline.
+
Wed Oct 10 21:13:46 2001 Kristian Rietveld <kristian@planet.nl>
* gtk/gtktreemodel.[ch]: added gtk_tree_model_get_iter_from_string().
+Wed Oct 10 12:48:38 2001 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkmain.c (gtk_init_check): Call setlocale (LC_ALL, "").
+ (#60606)
+
+ * gtk/gtkmain.c (gtk_disable_setlocale): Add function
+ to disable calling setlocale (LC_ALL, "").
+
+ * gtk/gtkmain.c (gtk_set_locale): Indicate in the
+ docs that this function is not typically useful.
+
+ * gdk/x11/{gdkim-x11.c,gdkmain-x11.c,gdkprivate-x11.h}:
+ Automatically initialize GDK for the current locale
+ on gdk_init(). Don't reset locale to C when
+ XSupportsLocale() fails.
+
+ * gdk/linux-fb/gdkim-fb.c (gdk_set_locale): Remove
+ useless checks for UTF-8 locale breakage that mattered
+ only for X.
+
+ * examples/calendar/calendar.c
+ tests/{testgtk.c,testtext.c,testcalendar.c}: Remove calls to
+ gtk_set_locale().
+
+ * gtk/gtkiconfactory.c gtk/gtkitemfactory.c:
+ gdk_pixbuf_new_from_stream => gdk_pixbuf_new_from_inline.
+
Wed Oct 10 21:13:46 2001 Kristian Rietveld <kristian@planet.nl>
* gtk/gtktreemodel.[ch]: added gtk_tree_model_get_iter_from_string().
+Wed Oct 10 12:48:38 2001 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkmain.c (gtk_init_check): Call setlocale (LC_ALL, "").
+ (#60606)
+
+ * gtk/gtkmain.c (gtk_disable_setlocale): Add function
+ to disable calling setlocale (LC_ALL, "").
+
+ * gtk/gtkmain.c (gtk_set_locale): Indicate in the
+ docs that this function is not typically useful.
+
+ * gdk/x11/{gdkim-x11.c,gdkmain-x11.c,gdkprivate-x11.h}:
+ Automatically initialize GDK for the current locale
+ on gdk_init(). Don't reset locale to C when
+ XSupportsLocale() fails.
+
+ * gdk/linux-fb/gdkim-fb.c (gdk_set_locale): Remove
+ useless checks for UTF-8 locale breakage that mattered
+ only for X.
+
+ * examples/calendar/calendar.c
+ tests/{testgtk.c,testtext.c,testcalendar.c}: Remove calls to
+ gtk_set_locale().
+
+ * gtk/gtkiconfactory.c gtk/gtkitemfactory.c:
+ gdk_pixbuf_new_from_stream => gdk_pixbuf_new_from_inline.
+
Wed Oct 10 21:13:46 2001 Kristian Rietveld <kristian@planet.nl>
* gtk/gtktreemodel.[ch]: added gtk_tree_model_get_iter_from_string().
#include <locale.h>
-/* If this variable is FALSE, it indicates that we should
- * avoid trying to use multibyte conversion functions and
- * assume everything is 1-byte per character
- */
-static gboolean gdk_use_mb;
-
/*
*--------------------------------------------------------------
* gdk_set_locale
gchar*
gdk_set_locale (void)
{
- wchar_t result;
- gchar *current_locale;
-
- gdk_use_mb = FALSE;
-
if (!setlocale (LC_ALL,""))
g_warning ("locale not supported by C library");
- current_locale = setlocale (LC_ALL, NULL);
-
- if ((strcmp (current_locale, "C")) && (strcmp (current_locale, "POSIX")))
- {
- gdk_use_mb = TRUE;
-
-#ifndef X_LOCALE
- /* Detect GNU libc, where mb == UTF8. Not useful unless it's
- * really a UTF8 locale. The below still probably will
- * screw up on Greek, Cyrillic, etc, encoded as UTF8.
- */
-
- if ((MB_CUR_MAX == 2) &&
- (mbstowcs (&result, "\xdd\xa5", 1) > 0) &&
- result == 0x765)
- {
- if ((strlen (current_locale) < 4) ||
- g_strcasecmp (current_locale + strlen(current_locale) - 4, "utf8"))
- gdk_use_mb = FALSE;
- }
-#endif /* X_LOCALE */
- }
-
- GDK_NOTE (MISC,
- g_message ("%s multi-byte string functions.",
- gdk_use_mb ? "Using" : "Not using"));
-
- return current_locale;
+ return setlocale (LC_ALL, NULL);
}
/*
*/
static gboolean gdk_use_mb;
-/*
- *--------------------------------------------------------------
- * gdk_set_locale
- *
- * Arguments:
- *
- * Results:
- *
- * Side effects:
- *
- *--------------------------------------------------------------
- */
-
-gchar*
-gdk_set_locale (void)
+void
+_gdk_x11_initialize_locale (void)
{
wchar_t result;
gchar *current_locale;
+ static char *last_locale = NULL;
gdk_use_mb = FALSE;
- if (!setlocale (LC_ALL,""))
- g_warning ("locale not supported by C library");
-
+ current_locale = setlocale (LC_ALL, NULL);
+
+ if (last_locale && strcmp (last_locale, current_locale) == 0)
+ return;
+
+ g_free (last_locale);
+ last_locale = g_strdup (current_locale);
+
if (!XSupportsLocale ())
- {
- g_warning ("locale not supported by Xlib, locale set to C");
- setlocale (LC_ALL, "C");
- }
+ g_warning ("locale not supported by Xlib");
if (!XSetLocaleModifiers (""))
g_warning ("can not set locale modifiers");
- current_locale = setlocale (LC_ALL, NULL);
-
if ((strcmp (current_locale, "C")) && (strcmp (current_locale, "POSIX")))
{
gdk_use_mb = TRUE;
#ifndef X_LOCALE
- /* Detect GNU libc, where mb == UTF8. Not useful unless it's
+ /* Detect ancient GNU libc, where mb == UTF8. Not useful unless it's
* really a UTF8 locale. The below still probably will
* screw up on Greek, Cyrillic, etc, encoded as UTF8.
*/
return current_locale;
}
+gchar*
+gdk_set_locale (void)
+{
+ if (!setlocale (LC_ALL,""))
+ g_warning ("locale not supported by C library");
+
+ _gdk_x11_initialize_locale ();
+
+ return setlocale (LC_ALL, NULL);
+}
+
/*
* gdk_wcstombs
*
XKeyboardState keyboard_state;
XClassHint *class_hint;
guint pid;
+
+ _gdk_x11_initialize_locale ();
XSetErrorHandler (gdk_x_error);
XSetIOErrorHandler (gdk_x_io_error);
GC _gdk_x11_gc_flush (GdkGC *gc);
+void _gdk_x11_initialize_locale (void);
+
extern GdkDrawableClass _gdk_x11_drawable_class;
extern Window _gdk_root_window;
extern gboolean _gdk_use_xshm;